const app = getApp()
// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    lists:[],
    isSelected:true,
    totalCounter:0,
    totalPrice:0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const cartLists = app.globalData.cartLists
    console.log(cartLists)
    this.setData({
      // 第一次加载数据
      lists : cartLists
    }) 
    // 设置回调函数 按引用传递 由于传入的是对象，传入的对象中的值发生改变 ，那么原来的对象的值也会改变
    app.addCartCallback=()=>{
      this.setData({
        lists : app.globalData.cartLists
      })
    }
    
    // 给全局挂载一个处理商品数据变化的回调函数
    app.goodsChange=(index,goods)=>{
      // 找到对应的商品更新 cartLIsts中的数据
     
      this.setData({
        [`lists[${index}]`] : goods
      })
    
     
      //修改全选状态，只要有一个不为选中时 isSelected 都为false
      const selectall = !this.data.lists.find(item=>item.checked != true)
      console.log(selectall)
      this.setData({
        isSelected:selectall
      })
      this.changeData()
    }
  },
  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // const cartLists = app.globalData.cartLists
    // this.setData({
    //   // 第一次加载数据
    //   lists : cartLists
    // })
    
    this.changeData()
  },
  changeData(){
    // 种类
    let counter = 0
    // 总价格
    let totalprice = 0
    for(let item of this.data.lists){
     if(item.checked == true){
       counter++
       totalprice += item.price*item.count
       console.log(totalprice)
     }
    }
    this.setData({
      totalCounter:counter,
      totalPrice:totalprice
    })
  },
  onSelectAll(){
    if(this.data.isSelected){
      this.data.lists.forEach(item=>item.checked=false)
      this.setData({
        lists:this.data.lists,
        isSelected:false
      })
    }else{
      this.data.lists.forEach(item=>item.checked=true)
      this.setData({
        lists:this.data.lists,
        isSelected:true
      })
    }
    this.changeData()
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})